;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; This file is part of ICCLE2.
;
; ICCLE2 is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
;
; ICCLE2 is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with ICCLE2.  If not, see <http://www.gnu.org/licenses/>.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun unknownp (x)
  (eq x (fixed-t-ignore *f4t*)))

(defun skip (header cell)
   (or (header-ignorep header)
       (header-classp  header)
      (unknownp cell)))

(defun list2headers (l)
  (labels 
      ((q (want sym) 
         (find (funcall want *f4t*) (symbol-name sym) :test #'eq))
       (sym2header (sym n)
         (let ((ignorep (q #'fixed-t-ignore sym)))
           (if (q #'fixed-t-numeric sym)
               (make-numeric  :name sym :ignorep ignorep :pos n)
               (make-discrete :name sym :ignorep ignorep :pos n)))))
    (let* ((n -1)
           (out  (mapcar #'(lambda(x) (sym2header x (incf n))) l)))
      (setf (header-classp (last1 out)) t)
      out)))
